package 命令模式;

//命令模式的本质就在于将命令进行封装，将发出命令的责任和执行命令的责任分开，
//是的发送者只需要知道如何发送命令即可，不需要命令是如何实现的，甚至命令执行是否成功都不需要理会。
//同时命令模式使得请求也变成了一个对象，它像其他对象一样可以被存储和传递。

//这里以电视机为例。
//电视剧是请求的接受者，遥控器是请求的发送者，遥控器上有一些按钮，不同的按钮对应着不同的操作。
//在这里遥控器需要执行三个命令：打开电视机、关闭电视机、换台。
public class MainClass {
	public static void main(String[] args) throws Exception {
        Command openCommand,closeCommand,changeCommand;
        
        openCommand = new OpenTvCommand();
        closeCommand = new CloseTvCommand();
        changeCommand = new ChangeChannelCommand();
        
        Controller control = new Controller(openCommand,closeCommand,changeCommand);
        
        control.open();           //打开电视机
        control.change();         //换频道
        control.close();          //关闭电视机
	}
}
